From ee4c69b68eab418e9458ff535f1e21ef853052af Mon Sep 17 00:00:00 2001 From: Tor Lillqvist Date: Sat, 30 Dec 2000 20:06:14 +0000 Subject: [PATCH] New function, as in the X11 backend. (gdk_window_new, 2000-12-30 Tor Lillqvist * gdk/win32/gdkwindow-win32.c (gdk_window_impl_win32_get_visible_region): New function, as in the X11 backend. (gdk_window_new, gdk_window_set_title): Use g_locale_from_utf8() instead of duplicating the same code here. * gdk/win32/gdkwin32.h (GDK_COLORMAP_PRIVATE_DATA): Use GDK_COLORMAP macro. * gdk/win32/gdkevents-win32.c (gdk_event_funcs): Use NULL as destroy function. (gdk_event_translate): Use GDK_COLORMAP_PRIVATE_DATA to correctly access that. * gtk/gtk.def: Update. * gtk/makefile.mingw.in: Use glib-genmarshal from $(GLIB)/gobject. 2000-12-26 Tor Lillqvist * gdk/win32/gdkvisual-win32.c (gdk_visual_init): Call g_error if we are on a palettized display ("PseudoColor" in X11), as the code for that doesn't work anyway, and never has. 2000-12-30 Tor Lillqvist * gdk_pixbuf.def: Update. --- ChangeLog | 26 ++++++++++++ ChangeLog.pre-2-0 | 26 ++++++++++++ ChangeLog.pre-2-10 | 26 ++++++++++++ ChangeLog.pre-2-2 | 26 ++++++++++++ ChangeLog.pre-2-4 | 26 ++++++++++++ ChangeLog.pre-2-6 | 26 ++++++++++++ ChangeLog.pre-2-8 | 26 ++++++++++++ gdk-pixbuf/ChangeLog | 4 ++ gdk-pixbuf/gdk_pixbuf.def | 3 ++ gdk/win32/gdkevents-win32.c | 4 +- gdk/win32/gdkpixmap-win32.c | 2 + gdk/win32/gdkvisual-win32.c | 2 + gdk/win32/gdkwin32.h | 2 +- gdk/win32/gdkwindow-win32.c | 82 ++++++++++++++++++++----------------- gtk/gtk.def | 5 --- gtk/makefile.mingw.in | 6 ++- 16 files changed, 244 insertions(+), 48 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4741c3d426..182815448a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,9 +1,35 @@ +2000-12-30 Tor Lillqvist + + * gdk/win32/gdkwindow-win32.c + (gdk_window_impl_win32_get_visible_region): New function, as in + the X11 backend. + (gdk_window_new, gdk_window_set_title): Use g_locale_from_utf8() + instead of duplicating the same code here. + + * gdk/win32/gdkwin32.h (GDK_COLORMAP_PRIVATE_DATA): Use + GDK_COLORMAP macro. + + * gdk/win32/gdkevents-win32.c (gdk_event_funcs): Use NULL as + destroy function. + (gdk_event_translate): Use GDK_COLORMAP_PRIVATE_DATA to correctly + access that. + + * gtk/gtk.def: Update. + + * gtk/makefile.mingw.in: Use glib-genmarshal from $(GLIB)/gobject. + 2000-12-30 Havoc Pennington * gdk/x11/gdkwindow-x11.c (gdk_window_new): Set the system colormap on input only windows, to avoid special cases all over the code for these windows. +2000-12-26 Tor Lillqvist + + * gdk/win32/gdkvisual-win32.c (gdk_visual_init): Call g_error if + we are on a palettized display ("PseudoColor" in X11), as the code + for that doesn't work anyway, and never has. + 2000-12-22 Alexander Larsson * gdk/linux-fb/gdkkeyboard-fb.c (xlate_io): diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index 4741c3d426..182815448a 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,9 +1,35 @@ +2000-12-30 Tor Lillqvist + + * gdk/win32/gdkwindow-win32.c + (gdk_window_impl_win32_get_visible_region): New function, as in + the X11 backend. + (gdk_window_new, gdk_window_set_title): Use g_locale_from_utf8() + instead of duplicating the same code here. + + * gdk/win32/gdkwin32.h (GDK_COLORMAP_PRIVATE_DATA): Use + GDK_COLORMAP macro. + + * gdk/win32/gdkevents-win32.c (gdk_event_funcs): Use NULL as + destroy function. + (gdk_event_translate): Use GDK_COLORMAP_PRIVATE_DATA to correctly + access that. + + * gtk/gtk.def: Update. + + * gtk/makefile.mingw.in: Use glib-genmarshal from $(GLIB)/gobject. + 2000-12-30 Havoc Pennington * gdk/x11/gdkwindow-x11.c (gdk_window_new): Set the system colormap on input only windows, to avoid special cases all over the code for these windows. +2000-12-26 Tor Lillqvist + + * gdk/win32/gdkvisual-win32.c (gdk_visual_init): Call g_error if + we are on a palettized display ("PseudoColor" in X11), as the code + for that doesn't work anyway, and never has. + 2000-12-22 Alexander Larsson * gdk/linux-fb/gdkkeyboard-fb.c (xlate_io): diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 4741c3d426..182815448a 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,9 +1,35 @@ +2000-12-30 Tor Lillqvist + + * gdk/win32/gdkwindow-win32.c + (gdk_window_impl_win32_get_visible_region): New function, as in + the X11 backend. + (gdk_window_new, gdk_window_set_title): Use g_locale_from_utf8() + instead of duplicating the same code here. + + * gdk/win32/gdkwin32.h (GDK_COLORMAP_PRIVATE_DATA): Use + GDK_COLORMAP macro. + + * gdk/win32/gdkevents-win32.c (gdk_event_funcs): Use NULL as + destroy function. + (gdk_event_translate): Use GDK_COLORMAP_PRIVATE_DATA to correctly + access that. + + * gtk/gtk.def: Update. + + * gtk/makefile.mingw.in: Use glib-genmarshal from $(GLIB)/gobject. + 2000-12-30 Havoc Pennington * gdk/x11/gdkwindow-x11.c (gdk_window_new): Set the system colormap on input only windows, to avoid special cases all over the code for these windows. +2000-12-26 Tor Lillqvist + + * gdk/win32/gdkvisual-win32.c (gdk_visual_init): Call g_error if + we are on a palettized display ("PseudoColor" in X11), as the code + for that doesn't work anyway, and never has. + 2000-12-22 Alexander Larsson * gdk/linux-fb/gdkkeyboard-fb.c (xlate_io): diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 4741c3d426..182815448a 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,9 +1,35 @@ +2000-12-30 Tor Lillqvist + + * gdk/win32/gdkwindow-win32.c + (gdk_window_impl_win32_get_visible_region): New function, as in + the X11 backend. + (gdk_window_new, gdk_window_set_title): Use g_locale_from_utf8() + instead of duplicating the same code here. + + * gdk/win32/gdkwin32.h (GDK_COLORMAP_PRIVATE_DATA): Use + GDK_COLORMAP macro. + + * gdk/win32/gdkevents-win32.c (gdk_event_funcs): Use NULL as + destroy function. + (gdk_event_translate): Use GDK_COLORMAP_PRIVATE_DATA to correctly + access that. + + * gtk/gtk.def: Update. + + * gtk/makefile.mingw.in: Use glib-genmarshal from $(GLIB)/gobject. + 2000-12-30 Havoc Pennington * gdk/x11/gdkwindow-x11.c (gdk_window_new): Set the system colormap on input only windows, to avoid special cases all over the code for these windows. +2000-12-26 Tor Lillqvist + + * gdk/win32/gdkvisual-win32.c (gdk_visual_init): Call g_error if + we are on a palettized display ("PseudoColor" in X11), as the code + for that doesn't work anyway, and never has. + 2000-12-22 Alexander Larsson * gdk/linux-fb/gdkkeyboard-fb.c (xlate_io): diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 4741c3d426..182815448a 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,9 +1,35 @@ +2000-12-30 Tor Lillqvist + + * gdk/win32/gdkwindow-win32.c + (gdk_window_impl_win32_get_visible_region): New function, as in + the X11 backend. + (gdk_window_new, gdk_window_set_title): Use g_locale_from_utf8() + instead of duplicating the same code here. + + * gdk/win32/gdkwin32.h (GDK_COLORMAP_PRIVATE_DATA): Use + GDK_COLORMAP macro. + + * gdk/win32/gdkevents-win32.c (gdk_event_funcs): Use NULL as + destroy function. + (gdk_event_translate): Use GDK_COLORMAP_PRIVATE_DATA to correctly + access that. + + * gtk/gtk.def: Update. + + * gtk/makefile.mingw.in: Use glib-genmarshal from $(GLIB)/gobject. + 2000-12-30 Havoc Pennington * gdk/x11/gdkwindow-x11.c (gdk_window_new): Set the system colormap on input only windows, to avoid special cases all over the code for these windows. +2000-12-26 Tor Lillqvist + + * gdk/win32/gdkvisual-win32.c (gdk_visual_init): Call g_error if + we are on a palettized display ("PseudoColor" in X11), as the code + for that doesn't work anyway, and never has. + 2000-12-22 Alexander Larsson * gdk/linux-fb/gdkkeyboard-fb.c (xlate_io): diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 4741c3d426..182815448a 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,9 +1,35 @@ +2000-12-30 Tor Lillqvist + + * gdk/win32/gdkwindow-win32.c + (gdk_window_impl_win32_get_visible_region): New function, as in + the X11 backend. + (gdk_window_new, gdk_window_set_title): Use g_locale_from_utf8() + instead of duplicating the same code here. + + * gdk/win32/gdkwin32.h (GDK_COLORMAP_PRIVATE_DATA): Use + GDK_COLORMAP macro. + + * gdk/win32/gdkevents-win32.c (gdk_event_funcs): Use NULL as + destroy function. + (gdk_event_translate): Use GDK_COLORMAP_PRIVATE_DATA to correctly + access that. + + * gtk/gtk.def: Update. + + * gtk/makefile.mingw.in: Use glib-genmarshal from $(GLIB)/gobject. + 2000-12-30 Havoc Pennington * gdk/x11/gdkwindow-x11.c (gdk_window_new): Set the system colormap on input only windows, to avoid special cases all over the code for these windows. +2000-12-26 Tor Lillqvist + + * gdk/win32/gdkvisual-win32.c (gdk_visual_init): Call g_error if + we are on a palettized display ("PseudoColor" in X11), as the code + for that doesn't work anyway, and never has. + 2000-12-22 Alexander Larsson * gdk/linux-fb/gdkkeyboard-fb.c (xlate_io): diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 4741c3d426..182815448a 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,9 +1,35 @@ +2000-12-30 Tor Lillqvist + + * gdk/win32/gdkwindow-win32.c + (gdk_window_impl_win32_get_visible_region): New function, as in + the X11 backend. + (gdk_window_new, gdk_window_set_title): Use g_locale_from_utf8() + instead of duplicating the same code here. + + * gdk/win32/gdkwin32.h (GDK_COLORMAP_PRIVATE_DATA): Use + GDK_COLORMAP macro. + + * gdk/win32/gdkevents-win32.c (gdk_event_funcs): Use NULL as + destroy function. + (gdk_event_translate): Use GDK_COLORMAP_PRIVATE_DATA to correctly + access that. + + * gtk/gtk.def: Update. + + * gtk/makefile.mingw.in: Use glib-genmarshal from $(GLIB)/gobject. + 2000-12-30 Havoc Pennington * gdk/x11/gdkwindow-x11.c (gdk_window_new): Set the system colormap on input only windows, to avoid special cases all over the code for these windows. +2000-12-26 Tor Lillqvist + + * gdk/win32/gdkvisual-win32.c (gdk_visual_init): Call g_error if + we are on a palettized display ("PseudoColor" in X11), as the code + for that doesn't work anyway, and never has. + 2000-12-22 Alexander Larsson * gdk/linux-fb/gdkkeyboard-fb.c (xlate_io): diff --git a/gdk-pixbuf/ChangeLog b/gdk-pixbuf/ChangeLog index 6232744098..7311a33efc 100644 --- a/gdk-pixbuf/ChangeLog +++ b/gdk-pixbuf/ChangeLog @@ -1,3 +1,7 @@ +2000-12-30 Tor Lillqvist + + * gdk_pixbuf.def: Update. + 2000-12-16 Havoc Pennington * gdk-pixbuf-animation.c (gdk_pixbuf_animation_new_from_file): ref diff --git a/gdk-pixbuf/gdk_pixbuf.def b/gdk-pixbuf/gdk_pixbuf.def index 49a7b282e6..b6f89f1413 100644 --- a/gdk-pixbuf/gdk_pixbuf.def +++ b/gdk-pixbuf/gdk_pixbuf.def @@ -14,9 +14,12 @@ EXPORTS gdk_pixbuf_copy gdk_pixbuf_copy_area gdk_pixbuf_error_quark + gdk_pixbuf_frame_copy + gdk_pixbuf_frame_free gdk_pixbuf_frame_get_action gdk_pixbuf_frame_get_delay_time gdk_pixbuf_frame_get_pixbuf + gdk_pixbuf_frame_get_type gdk_pixbuf_frame_get_x_offset gdk_pixbuf_frame_get_y_offset gdk_pixbuf_get_bits_per_sample diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c index 09376c4458..a5f48ad536 100644 --- a/gdk/win32/gdkevents-win32.c +++ b/gdk/win32/gdkevents-win32.c @@ -124,7 +124,7 @@ static GSourceFuncs event_funcs = { gdk_event_prepare, gdk_event_check, gdk_event_dispatch, - (GDestroyNotify)g_free + NULL }; GPollFD event_poll_fd; @@ -2323,7 +2323,7 @@ gdk_event_translate (GdkEvent *event, if (GDK_WINDOW_DESTROYED (window)) break; - colormap_private = (GdkColormapPrivateWin32 *) GDK_DRAWABLE_IMPL_WIN32 (GDK_WINDOW_OBJECT (window)->impl)->colormap; + colormap_private = GDK_COLORMAP_PRIVATE_DATA (GDK_DRAWABLE_IMPL_WIN32 (GDK_WINDOW_OBJECT (window)->impl)->colormap); hdc = (HDC) msg->wParam; if (colormap_private && colormap_private->xcolormap->rc_palette) { diff --git a/gdk/win32/gdkpixmap-win32.c b/gdk/win32/gdkpixmap-win32.c index f20a21df4d..5ea1488940 100644 --- a/gdk/win32/gdkpixmap-win32.c +++ b/gdk/win32/gdkpixmap-win32.c @@ -231,12 +231,14 @@ gdk_pixmap_new (GdkWindow *window, bmi.u.bmiColors[1].rgbRed = 0xFF; bmi.u.bmiColors[1].rgbReserved = 0x00; draw_impl->colormap = NULL; + GDK_NOTE (MISC, g_print ("... colormap NULL\n")); } else { draw_impl->colormap = GDK_DRAWABLE_IMPL_WIN32 (GDK_WINDOW_OBJECT (window)->impl)->colormap; if (draw_impl->colormap == NULL) draw_impl->colormap = gdk_colormap_get_system (); + GDK_NOTE (MISC, g_print ("... colormap %p\n", draw_impl->colormap)); if (depth == 8) { diff --git a/gdk/win32/gdkvisual-win32.c b/gdk/win32/gdkvisual-win32.c index 52abbfe6c9..e44087b13b 100644 --- a/gdk/win32/gdkvisual-win32.c +++ b/gdk/win32/gdkvisual-win32.c @@ -65,6 +65,8 @@ gdk_visual_init (void) if (rastercaps & RC_PALETTE) { + g_error ("Palettized display (%d-colour) mode not supported on Windows.", + GetDeviceCaps (gdk_display_hdc, SIZEPALETTE)); system_visual->visual.type = GDK_VISUAL_PSEUDO_COLOR; numcolors = GetDeviceCaps (gdk_display_hdc, NUMCOLORS); sizepalette = GetDeviceCaps (gdk_display_hdc, SIZEPALETTE); diff --git a/gdk/win32/gdkwin32.h b/gdk/win32/gdkwin32.h index 135d8c4f9e..e31092c740 100644 --- a/gdk/win32/gdkwin32.h +++ b/gdk/win32/gdkwin32.h @@ -341,7 +341,7 @@ GType gdk_gc_win32_get_type (void); #define GDK_PIXMAP_HBITMAP(pixmap) (GDK_DRAWABLE_IMPL_WIN32(((GdkPixmapObject *)pixmap)->impl)->handle) #define GDK_DRAWABLE_HANDLE(win) (GDK_IS_WINDOW (win) ? (GDK_WINDOW_HWND (win)) : (GDK_PIXMAP_HBITMAP (win))) #define GDK_IMAGE_HBM(image) (((GdkImagePrivateWin32 *) GDK_IMAGE (image)->windowing_data)->hbm) -#define GDK_COLORMAP_PRIVATE_DATA(cmap) ((GdkColormapPrivateWin32 *) cmap->windowing_data) +#define GDK_COLORMAP_PRIVATE_DATA(cmap) ((GdkColormapPrivateWin32 *) GDK_COLORMAP (cmap)->windowing_data) #define GDK_COLORMAP_WIN32COLORMAP(cmap) (((GdkColormapPrivateWin32 *)GDK_COLORMAP (cmap)->windowing_data)->xcolormap) #define GDK_VISUAL_XVISUAL(vis) (((GdkVisualPrivate *) vis)->xvisual) diff --git a/gdk/win32/gdkwindow-win32.c b/gdk/win32/gdkwindow-win32.c index 629c73092b..6b4e9e009d 100644 --- a/gdk/win32/gdkwindow-win32.c +++ b/gdk/win32/gdkwindow-win32.c @@ -44,6 +44,7 @@ static void gdk_window_impl_win32_set_colormap (GdkDrawable *drawable, static void gdk_window_impl_win32_get_size (GdkDrawable *drawable, gint *width, gint *height); +static GdkRegion* gdk_window_impl_win32_get_visible_region (GdkDrawable *drawable); static void gdk_window_impl_win32_init (GdkWindowImplWin32 *window); static void gdk_window_impl_win32_class_init (GdkWindowImplWin32Class *klass); static void gdk_window_impl_win32_finalize (GObject *object); @@ -112,6 +113,10 @@ gdk_window_impl_win32_class_init (GdkWindowImplWin32Class *klass) drawable_class->set_colormap = gdk_window_impl_win32_set_colormap; drawable_class->get_colormap = gdk_window_impl_win32_get_colormap; drawable_class->get_size = gdk_window_impl_win32_get_size; + + /* Visible and clip regions are the same */ + drawable_class->get_clip_region = gdk_window_impl_win32_get_visible_region; + drawable_class->get_visible_region = gdk_window_impl_win32_get_visible_region; } static void @@ -195,6 +200,22 @@ gdk_window_impl_win32_get_size (GdkDrawable *drawable, *height = GDK_WINDOW_IMPL_WIN32 (drawable)->height; } +static GdkRegion* +gdk_window_impl_win32_get_visible_region (GdkDrawable *drawable) +{ + GdkWindowImplWin32 *impl = GDK_WINDOW_IMPL_WIN32 (drawable); + GdkRectangle result_rect; + + result_rect.x = 0; + result_rect.y = 0; + result_rect.width = impl->width; + result_rect.height = impl->height; + + gdk_rectangle_intersect (&result_rect, &impl->position_info.clip_rect, &result_rect); + + return gdk_region_rectangle (&result_rect); +} + void _gdk_windowing_window_init (void) { @@ -394,9 +415,6 @@ gdk_window_new (GdkWindow *parent, int width, height; int x, y; char *title; - gint titlelen; - wchar_t *wctitle; - gint wlen; char *mbtitle; g_return_val_if_fail (attributes != NULL, NULL); @@ -406,6 +424,14 @@ gdk_window_new (GdkWindow *parent, g_return_val_if_fail (GDK_IS_WINDOW (parent), NULL); + GDK_NOTE (MISC, + g_print ("gdk_window_new: %s\n", + (attributes->window_type == GDK_WINDOW_TOPLEVEL ? "TOPLEVEL" : + (attributes->window_type == GDK_WINDOW_CHILD ? "CHILD" : + (attributes->window_type == GDK_WINDOW_DIALOG ? "DIALOG" : + (attributes->window_type == GDK_WINDOW_TEMP ? "TEMP" : + "???")))))); + parent_private = (GdkWindowObject*) parent; if (GDK_WINDOW_DESTROYED (parent)) return NULL; @@ -453,7 +479,7 @@ gdk_window_new (GdkWindow *parent, title = attributes->title; else title = g_get_prgname (); - if (!title) + if (!title || !*title) title = "GDK client window"; impl->event_mask = GDK_STRUCTURE_MASK | attributes->event_mask; @@ -479,14 +505,16 @@ gdk_window_new (GdkWindow *parent, { if ((((GdkVisualPrivate*)gdk_visual_get_system ())->xvisual) == xvisual) { - draw_impl->colormap = - gdk_colormap_get_system (); + draw_impl->colormap = gdk_colormap_get_system (); gdk_colormap_ref (draw_impl->colormap); + GDK_NOTE (MISC, g_print ("...using system colormap %p\n", + draw_impl->colormap)); } else { - draw_impl->colormap = - gdk_colormap_new (visual, FALSE); + draw_impl->colormap = gdk_colormap_new (visual, FALSE); + GDK_NOTE (MISC, g_print ("...using new colormap %p\n", + draw_impl->colormap)); } } } @@ -496,6 +524,7 @@ gdk_window_new (GdkWindow *parent, private->depth = 0; private->input_only = TRUE; draw_impl->colormap = NULL; + GDK_NOTE (MISC, g_print ("...GDK_INPUT_ONLY, NULL colormap\n")); } if (parent_private) @@ -564,13 +593,7 @@ gdk_window_new (GdkWindow *parent, height = impl->height; } - titlelen = strlen (title); - wctitle = g_new (wchar_t, titlelen + 1); - mbtitle = g_new (char, 3*titlelen + 1); - wlen = gdk_nmbstowchar_ts (wctitle, title, titlelen, titlelen); - wctitle[wlen] = 0; - WideCharToMultiByte (GetACP (), 0, wctitle, -1, - mbtitle, 3*titlelen, NULL, NULL); + mbtitle = g_locale_from_utf8 (title, NULL); #ifdef WITHOUT_WM_CREATE draw_impl->handle = CreateWindowEx (dwExStyle, @@ -623,13 +646,8 @@ gdk_window_new (GdkWindow *parent, #endif GDK_NOTE (MISC, - g_print ("gdk_window_new: %s %s %dx%d@+%d+%d %#x = %#x\n" - "...locale %#x codepage %d\n", - (private->window_type == GDK_WINDOW_TOPLEVEL ? "TOPLEVEL" : - (private->window_type == GDK_WINDOW_CHILD ? "CHILD" : - (private->window_type == GDK_WINDOW_DIALOG ? "DIALOG" : - (private->window_type == GDK_WINDOW_TEMP ? "TEMP" : - "???")))), + g_print ("... \"%s\" %dx%d@+%d+%d %#x = %#x\n" + "... locale %#x codepage %d\n", mbtitle, width, height, (x == CW_USEDEFAULT ? -9999 : x), y, (guint) hparent, @@ -638,7 +656,6 @@ gdk_window_new (GdkWindow *parent, (guint) impl->charset_info.ciACP)); g_free (mbtitle); - g_free (wctitle); if (draw_impl->handle == NULL) { @@ -1377,10 +1394,7 @@ void gdk_window_set_title (GdkWindow *window, const gchar *title) { - gint titlelen; - wchar_t *wcstr; - gint wlen; - char *mbstr; + char *mbtitle; g_return_if_fail (window != NULL); g_return_if_fail (GDK_IS_WINDOW (window)); @@ -1398,19 +1412,11 @@ gdk_window_set_title (GdkWindow *window, /* As the title is in UTF-8 we must translate it * to the system codepage. */ - titlelen = strlen (title); - wcstr = g_new (wchar_t, titlelen + 1); - mbstr = g_new (char, 3*titlelen + 1); - wlen = gdk_nmbstowchar_ts (wcstr, title, titlelen, titlelen); - wcstr[wlen] = 0; - WideCharToMultiByte (GetACP (), 0, wcstr, -1, - mbstr, 3*titlelen, NULL, NULL); - - if (!SetWindowText (GDK_WINDOW_HWND (window), mbstr)) + mbtitle = g_locale_from_utf8 (title, NULL); + if (!SetWindowText (GDK_WINDOW_HWND (window), mbtitle)) WIN32_API_FAILED ("SetWindowText"); - g_free (mbstr); - g_free (wcstr); + g_free (mbtitle); } } diff --git a/gtk/gtk.def b/gtk/gtk.def index e9195776fa..827a9a91d4 100755 --- a/gtk/gtk.def +++ b/gtk/gtk.def @@ -726,12 +726,10 @@ EXPORTS gtk_marshal_VOID__ENUM gtk_marshal_VOID__ENUM_FLOAT gtk_marshal_VOID__ENUM_FLOAT_BOOLEAN - gtk_marshal_VOID__INT gtk_marshal_VOID__INT_INT gtk_marshal_VOID__INT_INT_INT gtk_marshal_VOID__INT_INT_INT_INT gtk_marshal_VOID__INT_INT_POINTER - gtk_marshal_VOID__POINTER gtk_marshal_VOID__POINTER_BOOLEAN gtk_marshal_VOID__POINTER_INT gtk_marshal_VOID__POINTER_INT_INT_POINTER_UINT_UINT @@ -747,12 +745,9 @@ EXPORTS gtk_marshal_VOID__POINTER_UINT_ENUM gtk_marshal_VOID__POINTER_UINT_FLAGS gtk_marshal_VOID__POINTER_UINT_UINT - gtk_marshal_VOID__UINT - gtk_marshal_VOID__UINT_POINTER gtk_marshal_VOID__UINT_POINTER_UINT_ENUM_ENUM_POINTER gtk_marshal_VOID__UINT_POINTER_UINT_FLAGS_FLAGS gtk_marshal_VOID__UINT_POINTER_UINT_UINT_ENUM - gtk_marshal_VOID__VOID gtk_menu_attach_to_widget gtk_menu_bar_append gtk_menu_bar_get_type diff --git a/gtk/makefile.mingw.in b/gtk/makefile.mingw.in index 8058cef55f..eab16f7aac 100644 --- a/gtk/makefile.mingw.in +++ b/gtk/makefile.mingw.in @@ -36,6 +36,8 @@ INCLUDES = -I . -I .. -I ../gdk -I ../gdk-pixbuf DEPCFLAGS = $(PANGO_CFLAGS) $(GLIB_CFLAGS) $(LIBICONV_CFLAGS) $(INTL_CFLAGS) DEFINES = -DGTK_DISABLE_COMPAT_H -DGTK_COMPILATION -DG_LOG_DOMAIN=\"Gtk\" -DGTK_VERSION=\"@GTK_VERSION@\" +GLIB_GENMARSHAL = $(GLIB)/gobject/glib-genmarshal.exe + all : \ ../config.h \ generated \ @@ -385,10 +387,10 @@ gtktypebuiltins_evals.c: makeenums.pl gtk.defs $(PERL) makeenums.pl arrays $(gtk_public_h_sources) $(gdk_headers) >gtktypebuiltins_evals.c gtkmarshal.h : gtkmarshal.list - glib-genmarshal --prefix=gtk_marshal gtkmarshal.list --header >gtkmarshal.h + $(GLIB_GENMARSHAL) --prefix=gtk_marshal gtkmarshal.list --header >gtkmarshal.h gtkmarshal.c : gtkmarshal.list - glib-genmarshal --prefix=gtk_marshal gtkmarshal.list --body >gtkmarshal.c + $(GLIB_GENMARSHAL) --prefix=gtk_marshal gtkmarshal.list --body >gtkmarshal.c # # Linking: -- 2.30.2